python:如何通过NetworkX获得度分布的第二矩 您所在的位置:网站首页 networkx 度分布 python:如何通过NetworkX获得度分布的第二矩

python:如何通过NetworkX获得度分布的第二矩

2024-05-10 03:27| 来源: 网络整理| 查看: 265

我不确定您是否已经找到了答案,但是这里是一些关于网络科学的很好的文档。

有关您的问题,请参阅第四章,部分:"无标度意义":

如注释中所述,第二矩可以通过将度平方之和除以节点数(假设每个节点只存在一次且所有节点都有相同的概率)来计算。

下面是计算n_th矩的广义计算形式:

代码语言:javascript复制def nth_moment(g,n): s = 0 for node in g.nodes: s += g.degree[node] ** n return (s/len(g))

使用该函数计算第二时刻的示例:

代码语言:javascript复制some_graph = nx.barabasi_albert_graph(10000, 2, seed=1) print(nth_moment(some_graph, 2))

更快- Numpy

代码语言:javascript复制import numpy as np import networkx as nx g = nx.barabasi_albert_graph(10000, 2, seed=1) def nth_moment_v2(g,n): degree_np = np.array(list(dict(g.degree).values())) return (sum(degree_np**n)/len(g))

时报:

代码语言:javascript复制st = time.time() print(nth_moment(g,2)) print(time.time()-st) st = time.time() print(nth_moment_v2(g,2)) print(time.time()-st)

58.3626 0.017042160034179688 58.3626 0.005998849868774414



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有